Hallo,
vielen Dank an alle die sich an diesem Thema beteiligt haben.
MfG:
BigRox
Hallo,
vielen Dank an alle die sich an diesem Thema beteiligt haben.
MfG:
BigRox
Hallo,
SPI_SETMOUS E(das E vergessen?!) SONAR
Im Post habe ich das E wirklich nur vergessen, kann ja schon mal vorkommen.
Weil du eine Zeichenkette übergeben hast, erforderlich ist aber UINT.
Da habe ich wohl irgendwie den Durchblick verloren, wie war das noch mit den Bäumen und dem Wald...
Was PVOID angeht , das ist anscheinend nur eine Art Platzhalter für den zu übergebenden Dateityp.
Anscheinend komme ich so langsam dahinter, wie das mit dem DLLCall geht.
MfG:
BigRox
Hallo Funkey,
jetzt hatte ich gedacht, dass ich das mit dem DllCall etwas durchschaut hätte.
Aber "Irrtum sprach der Igel..."
Warum kann ich den SPI_SETMOUSSONAR nicht verwenden, sondern muss die Konstante von AutoIt (oder 0x101D) verwenden?
Und warum muss ich bei einem PVOID-Datentyp UINT-angeben?
MfG:
BigRox
Hallo,
ich habe mir mal einige DLLCalls angeschaut und diese mit den Angaben in der Windows API Referenz verglichen.
Dabei habe ich zuerst mal festgestellt, optionale Parameter gibt es dabei anscheinend nicht, man muss immer alle Parameter angeben. Und die Dateitypen müssen stimmen.
Dann habe ich mal diesen DLLCall ausprobiert um damit die Maussonar-Option einzuschalten.
DllCall("user32.dll", "bool", "SystemParametersInfoA", "uint", "SPI_SETMOUSESONAR", "uint", True, "ptr", Null, "uint", 0)
Nur irgendetwas ist daran noch falsch, es tut sich nämlich gar nichts.
Anscheinen habe ich das mit den Dateitypen doch noch nicht so ganz durchschaut und brauch noch etwas mehr Hilfe dabei.
MfG:
BigRox
Hallo,
ich versuche seit etwa einer Woche, das mit den DLLCalls rauszubekommen.
Leider bisher ohne Erfolg.
Ich versuch z.B. bei diesem DLLCall rauszubekommen, wo ich die Parameter dazu her bekomme.
DllCall("user32.dll", "int", "SystemParametersInfo", "int", $SPI_SETSNAPTODEFBUTTON, "BOOL", False, "int", 0, "int", 0)
Das Tutorial von BugFix kenne ich, aber irgendwie klappt es dennoch nicht.
Da steht u.a. dass er die notwendigen Informationen aus der Windows API Referenz nimmt, nur da finde ich noch nicht einmal die Parameter des obigen Befehls.
Eigentlich müssten die ja auch in der Referenz zu finden sein, da der Befehl funktioniert.
Anscheinend muss man aber da schon genau wissen, wo die gesuchten Informationen stehen, um sie auch zu finden.
Irgendwie erinnert mich die Referenz an den Spruch:
"Jetzt wo ich weiß wie das Gerät funktioniert, verstehe ich auch die Bedienungsanleitung."
Auch der Dependency Walker spuckt bei mir nur massenweise Daten und vor allem Fehlermeldungen aus.
Angeblich kann er die Datei, die er gerade geöffnet hat plötzlich nicht mehr finden.
Gibt es da nicht auch noch andere Infoquellen?
Den nur mit Dependency Walker und API Referenz ist das ganz schon ein etwas sehr schwieriges Unterfangen.
MfG:
BigRox
Hallo,
Danke an alle Beteiligten
MfG
BigRox
Moombas ,
die Leerzeichen vor dem GUI-Titel, sind zwar nicht unbedingt nötig, aber es wäre schon interessant zu erfahren, warum es früher ging und heute nicht mehr.
Und eine Lösung für dieses Problem wäre auch interessant.
Ich vermute nämlich das dieses Problem auch an einer anderen Stelle auftreten könnte und dann hätte man auch direkt eine Lösung dafür.
MfG:
BigRox
Die Frage warum du unbedingt N Leerzeichen vor deinen eigentlichen Titel setzen willst (musst) bleibt noch offen?
Das mache ich um den GUI-Titel nicht ganz linksbündig zu positionieren.
Irgendwie finde ich das dies dann schöner aussieht.
MfG:
BigRox
Hallo,
ich habe da ein Problem mit den Leerzeichen vor einem GUI-Titel.
Zum einfacheren Testen, habe ich mir ein kleines Script geschrieben.
Opt("MustDeclareVars", 1)
Global $hGUI, $sTitel = "Test Test Test"
$hGUI = GUICreate(" " & $sTitel, 500, 200, -1, -1)
GUISetState(@SW_SHOW)
Sleep(5000)
Exit
Alles anzeigen
Das Problem ist, ab den Windows 11 Versionen vor etwa 23H2 wird der GUI-Titel mit den Leerzeichen davor angezeigt, aber ab etwa 23H2 werden die Leerzeichen nicht mehr angezeigt.
Ersetze ich die Leerzeichen durch andere Zeichen, so werden diese Zeichen auch richtig angezeigt.
Um auszuschließen das ich irgendetwas falsch eingestellt habe, habe ich mir mal einen USB-Stick mit Windows 11 (die neuste Version) erstellt und diese Version und AutoIt (auch ohne irgendetwas zu ändern) installiert.
Auch damit werden keine Leerzeichen mehr angezeigt.
Mit dem Befehl _StringRepeat(" ", 10) geht es auch nicht.
Da hat wohl Microsoft irgendetwas geändert und damit GUICreate() negativ beeinflusst, da den Titel mit Leerzeichen versetzen jetzt auch nicht mehr geht.
Nur wie kann man das wieder korrigieren?
MfG:
BigRox
Hallo,
vielen Dank an alle die zu diesem Thema etwas geschrieben haben.
Ich habe es jetzt mit den Befehlen SplashText(On) und SplashText(Off) gelöst und es funktioniert bestens.
MfG:
BigRox
Hallo SOLVE-SMART,
das endgültige Script soll eine Wörtersuche werden.
Dazu wird zuerst ein GUI mit einem Edit-Control und einem Button zum Starten der Suche angezeigt. Nachdem man den Suchbegriff in das Edit-Control eingegeben hat, klickt man auf den Suche starten-Button. Da die Suche einige Zeit dauern kann, erscheint während dem Suchvorgang ein Wartehinweis der über dem Edit-Control angezeigt werden soll. Wenn die Suche abgeschlossen ist, soll diese Wartehinweis wieder ausgeblendet werden und das Ergebnis der Suche im Edit-Control erscheinen.
Das mit der Suche klappt auch einwandfrei, nur die Linien im Wartehinweis stören mich.
Daher habe ich alles was man nicht unbedingt braucht aus dem Script, was ich hier gepostet habe, entfernt, damit das Problem besser sichtbar wird.
Entweder gibt es da eine spezielle Einstellung oder es handelt sich um einen generellen Fehler von AutoIt.
Der Wartehinweis hat nämlich nur diese störenden Linien wenn er über einem Edit-Control erscheinen soll und das einzige was anscheinend hilft ist das Edit-Control vorm Anzeigen des Wartehinweis ausblenden und erst wenn der Wartehinweis ausgeblendet ist wieder einblenden.
Mich würde aber schon interessieren woher dieses Problem eigentlich kommt.
Übrigens:
Wie hast du das mit der Code-Anzeige hier im Forum geschafft, das ging bei mir nämlich einfach nicht.
Oder zeigt die Vorschau etwas anderes an?
MfG:
BigRox
Edit: da waren wohl einige schneller beim schreiben wie ich.
Hallo,
ich habe da ein Problem mit einem Edit-Control.
Ich habe eine GUI mit einem Edit-Control und einem Label, das zuerst versteckt ist und erst nach einem Klick auf einen Button angezeigt wird.
Dieses Label erscheint dann über dem Edit-Control. Das ganz funktioniert auch soweit, nur erscheinen in dem Label immer zwei horizontale Linien, die genau dem oberen und unteren Rand des Edit-Controls entsprechen. Gelegentlich erscheinen nach dem Klick auf den Button keine Linien im Label, aber spätestens wenn man mit dem Cursor über das Label fährt, sind die Linien wieder da.
Einzig hilft das das verstecken des Edit-Controls, denn nur dann sind auch diese Linien weg.
Ich habe hier mal ein kleines Script angefügt um das Problem nachvollziehen zu können.
#include-once
#include <GUIConstants.au3>
#include <WindowsConstants.au3>
Opt("MustDeclareVars", 1)
Global $idBtn_Anzeigen, $idEdiText, $hGUI_Hauptfenster, $GUI_Msg, $idLbl_Wartehinweis
; Das Fenster des GUI erstellen.
$hGUI_Hauptfenster = GUICreate("TEST TEST TEST", 830, 185, -1, -1)
GUISetBkColor(0x3680FF)
; Das Textfenster (Edit-Control) erstellen.
$idEdiText = GUICtrlCreateEdit("", 30, 30, 768, 40, BitOR($ES_CENTER, $ES_MULTILINE))
$idBtn_Anzeigen = GUICtrlCreateButton("Label anzeigen.", 250, 128, 310, 40, BitOR($SS_CENTER, $BS_PUSHLIKE))
GUICtrlSetFont(-1, 12, 400, 0, "Tahoma")
GUICtrlSetBkColor(-1, 0x00FF00)
; Das Label mit dem Wartehinweis erstellen.
$idLbl_Wartehinweis = GUICtrlCreateLabel("", 214, 23, 372, 89)
GUICtrlSetBkColor(-1, 0x707070)
GUICtrlSetState(-1, $GUI_HIDE)
GUISetState(@SW_SHOW, $hGUI_Hauptfenster)
While 1
$GUI_Msg = GUIGetMsg()
Switch $GUI_Msg
Case $GUI_EVENT_CLOSE ; Symbol <Fenster schließen>
GUIDelete($hGUI_Hauptfenster)
ExitLoop
Case $idBtn_Anzeigen ; Button <Label anzeigen.>
; Das Label für den Wartehinweis anzeigen.
GUICtrlSetState($idLbl_Wartehinweis, $GUI_SHOW)
;GUICtrlSetState($idEdiText, $GUI_HIDE)
EndSwitch
WEnd
Exit
Alles anzeigen
Hoffentlich kann man mit dem Anhang auch etwas anfangen, den mit diesem Forum scheint wohl etwas nicht so ganz zu stimmen,denn jedesmahl wenn ich ein Code einfügen will, sind alle Einrückungen weg.
MfG:
BigRox
Hallo Mars und Andy,
Danke für den Tipp
Ich dachte gar nicht, dass es so einfach geht, aber manchmal hat man eben einfach eine Denkblockade.
MfG:
BigRox
Hallo,
ich habe eine Variable mit einem Farbwert im RGB-Format z.b.
$xFarbe = 0x1A49BC
Diese Farbe möchte ich in GDI+ verwenden.
Die Befehle von GDI+ benötigen jedoch das ARGB-Format.
Der Alpha Anteil währe bei mir immer FF, also keine Transparenz.
Ich müsste meine Variable um diesen Alpha-Anteil ergänzen, sodass ich nachher
0xFF1A49BC als ARGB-Wert für GDI+ erhalte.
Wie kann ich also meine Variable für GDI+ verwenden?
MfG:
BigRox
Hallo BugFix,
das Script funktioniert gut, nur eine Kleinigkeit könnte man noch verbessern.
Wenn ich z.B. drei Scripte im Explorer zum öffnen in SciTE auswähle, so werden die in SciTE angezeigt und das aktuelle Tab markiert.
So weit ist alles bestens.
Wenn ich dann aber eine weitere Datei weiter Datei z.B mit "Datei | Neu" hinzufüge, so wird die nicht als aktuell markiert.
Erst wenn ich mit dem Cursor auf dieses neue Tab fahre und dann den Cursor wieder von diesem Tab weg bewege, wir dieses Tab auch markiert.
Das selbe geschieht, wenn ich das aktuelle Tab schließe. Dann wird ja wieder ein anderes Tab zum aktuellen Tab, aber es wird nicht entsprechend markiert. Ich muss erst wieder mit dem Cursor auf diese Tab fahren und dann den Cursor wieder weg bewegen, damit es auch markiert wird.
MfG:
BigRox
Hallo BugFix,
ich verwende das Script auch unter Windows 11 22631.2715 64Bit.
Ein dauerndes flickern sehe ich nicht, nur alle paar Sekunden flackert das markierte Tab, so als wenn es kurz ausgeblendet und dann sofort wieder neu gezeichnet würde.
Eine Lösung dafür würde mich auch interessieren.
MfG:
BigRox
Hallo Moombas und Bananajoe,
Danke
Wieder was gelernt.
MfG:
BigRox
Hallo BugFix,
ich habe mir dein Script mal genauer angeschaut, um es zu verstehen.
Dabei bin ich auf folgende Zeile gestoßen, die ich gar nicht verstehe.
Return SetError(($hWndTab = Null ? 1 : 0), 0, $hWndTab)
Es geht um das
$hWndTab = Null ? 1 : 0
Das sieht aber irgendwie nach einer anderen Programmiersprache aus, da ich in AutoIt soetwas bisher noch nie gesehen habe.
Ich vermute mal, dass dies eine Abfrage ist. So in etwa:
Wenn $hWndTab leer ist dann ersetze es durch den Wert hinter :
Etwa das gleiche steht in der Deklarationszeile der folgenden Funktion, da steht:
Local $sVal = $_sDefault, $sSec = $_sec = Null ? 'scheme' : $_sec
Kannst du mir das mal genauer erklären?
MfG:
BigRox
Hallo,
ich habe eben Windows 11 Pro 22H2 22621.525 mal ganz neu installiert.
(Das Bild in Post #67 stammt aber von der Windows 11 Pro 22H2 22621.1265 Version).
Dazu habe ich die Version verwendet, die mir das MediaCrationTool auf eine USB-Stick schreibt.
Diese Version habe ich keinerlei Tweaks o.ä. hinzugefügt und auch keine anderen Einstellungen geändert.
Auf diese Version habe AutoIt 3.3.16.1 und SciTE4AutoIT3 vom16.3.2021 installiert und die Tabs sehen da auch so platt gebügelt aus:
autoit.de/wcf/attachment/90521/
Damit ist wohl klar, dass dies ein Problem von/mit Windows 11 ist.
auf allen bei mir genutzten Rechnern mit Win7 bzw. Win10 sehen die Tabs in Scite so aus wie bei BugFix . Scheint also ein Win11 "Problem" zu sein, ggf einstellbar, wie "damals" AERO?!
Das mit AERO ist ein guter Hinweis, eventuell kommt SciTE mit einer anderen Einstellung für die Desktopeffekte von Windows 11 nicht zurecht.
Mit der Scaliererei von Windows 11, haben ja auch so einige Programme ihre Probleme.
Eben habe ich mir auch noch die neuste Version von SciTE 5.3.5 vom 13.3.2023 (die Version ohne AutoIt3) heruntergeladen und installiert/kopiert und da sehen die Tabs so aus:
Die neuste Version von SciTE hat also auch dieses Problem.
Da muss es doch schon ein Lösung geben, ich kann mir nämlich nicht vorstellen, dass ich der erste bin, dem das auffällt.
MfG:
BigRox
Hallo BugFix,
Oder - was ich jetzt mal vermute: ein Systemfehler (Windows 10/11 ? ) .
Also, ein Installationsfehler scheidet schonmal aus, da ich nun SciTE neu heruntergeladen und installiert habe.
Danach sehen die Tabs auch noch so bes... aus.
Was mich aber an einem Windows-Systemfehler wundert ist, dass nur die Tabs von SciTE so aussehen.
Die anderen Programme sind z.B PsPad, SpeedCommander Vivaldi-Browser, Thunderbird usw.
Mich würde daher mal interessieren, wie die Tabs bei anderen im Forum, die auch Windows 11 benutzen, aussehen.
MfG:
BigRox